package com.chushouya.common.constant;

import com.general.framework.core.exception.ICacheKey;
import lombok.AllArgsConstructor;

import java.util.concurrent.TimeUnit;

/**
 * Basic模块RedisKey枚举
 */
@AllArgsConstructor
public enum RedisKeyEnum implements ICacheKey {
    /**
     * 验证码试错保护，错误五次禁用10分钟
     * 第一个s: 场景
     * 第二个s: 手机号
     */
    SMS_VALIDATE_CODE_TIMES("sms_validate_code_times:%s:%s", "验证码试错保护", TimeUnit.MINUTES.toSeconds(30L)),


    SMS_VALIDATE_IP_TIMES("sms_validate_ip_times:%s", "验证码IP发送保护", TimeUnit.DAYS.toSeconds(1L)),
    /**
     * 验证码五分钟有效
     * 第一个s -> 场景
     * 第二个s -> 手机号
     */
    SMS_VALIDATE_CODE("sms_validate_code:%s:%s", "短信验证码", TimeUnit.MINUTES.toSeconds(5L));

    /**
     * 值
     */
    private final String value;

    /**
     * 名称
     */
    private final String name;

    /**
     * 过期时间s
     */
    private final Long expire;

    @Override
    public String value() {
        return this.value;
    }

    @Override
    public String named() {
        return this.name;
    }

    @Override
    public Long expire() {
        return this.expire;
    }

}
